<?php
declare (strict_types=1);

namespace app\common\model\student;

use cores\BaseModel;
use think\model\relation\HasOne;

/**
 * 学员报名模型
 * Class Sign
 * @package app\common\model
 */
class Sign extends BaseModel
{
    // 定义表名
    protected $name = 'student_sign';

    // 定义主键
    protected $pk = 'student_sign_id';
    /**
     * 追加字段
     * @var array
     */
    protected $append = ['job_level_text'];


    /**
     * 详情
     * @param $where
     * @param array $with
     * @return array|static|null
     */
    public static function detail($where, array $with = [])
    {
        return static::get($where, $with);
    }

    public function getJobLevelTextAttr($value, $data)
    {
        $arr = [
            'primary' => '初级',
            'intermediate' => '中级',
            'senior' => '高级',
            'not' => '--',
        ];
        return $arr[$data['job_level']] ?? "";
    }

    public function getRegistrationTimeAttr($value, $data)
    {
        return $value ? date("Y-m-d", $value) : "";
    }

    public function getCertCreateTimeAttr($value, $data)
    {
        return $value ? date("Y-m-d H:i:s", $value) : "";
    }

    public function getReportTimeAttr($value, $data)
    {
        return $value ? date("Y-m-d H:i:s", $value) : "";
    }

    /**
     * 头像信息
     * @return HasOne
     */
    public function studentUser()
    {
        return $this->hasOne('app\common\model\student\User', 'student_user_id', 'student_user_id');
    }

    /**
     * 头像信息
     * @return HasOne
     */
    public function avatarFile()
    {
        return $this->hasOne('app\\common\\model\\UploadFile', 'file_id', 'avatar_file_id');
    }

    public function storeUser()
    {
        return $this->hasOne('app\common\model\store\User', 'store_user_id', 'store_user_id');
    }

    public function job()
    {
        return $this->hasOne('app\common\model\job\Job', 'job_id', 'job_id');
    }
}
